home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK1.toast / Development Kits (Disc 1) / Open Transport / Sample Code / Network Watch (DMZ) 1.5 / sources / dmz.h next >
Encoding:
C/C++ Source or Header  |  1995-09-01  |  18.2 KB  |  605 lines  |  [TEXT/MPS ]

  1. /*
  2.  *    dmz.h
  3.  *    
  4.  *    Modification History
  5.  *    5/27/94     rrk    Implemented support for PPC
  6.  *  2/1/94 by Peter Lovell, GE Information Services
  7.  *    for Think C 6.0
  8.  *    9/21/92  rrk    Implemented ATalk Trans Queue Handler
  9.  *    2/15/90    pvh    - first wrote this.  about freakin time...
  10.  *
  11.  */
  12.  
  13. #ifndef __DMZ__
  14. #define __DMZ__
  15.  
  16. #include    <Types.h>
  17. #include    <Quickdraw.h>
  18. #include    <ToolUtils.h>
  19. #include    <Fonts.h>
  20. #include    <Events.h>
  21. #include    <Windows.h>
  22. #include    <Dialogs.h>
  23. #include    <Menus.h>
  24. #include    <TextEdit.h>
  25. #include    <Scrap.h>
  26. #include    <SegLoad.h>
  27. #include    <Files.h>
  28. #include    <Devices.h>
  29. #include    <Memory.h>
  30. #include    <Lists.h>
  31. #include    <Script.h>
  32. #include    <Packages.h>
  33. #include    <OSUtils.h>
  34. #include    <CursorCtl.h>
  35. #include    <Traps.h>
  36. #include    <Resources.h>
  37. #include    <Errors.h>
  38. #include    <OSUtils.h>
  39. #include    <Strings.h>
  40. #include    <Gestalt.h>
  41. #include    <ConditionalMacros.h>
  42. #include    <MixedMode.h>
  43. #include    <AppleTalk.h>
  44. #include    "SpinCursor.h"
  45. #include    <LowMem.h>
  46.  
  47. #define __wchar_t__    // entered to get around header problems with Symantec C IDE
  48.  
  49. #include     <OpenTransport.h>
  50. #include     <OpenTptAppleTalk.h>
  51. #include    <stdlib.h>
  52.  
  53. /*
  54.  *    Structure necessary for MultiFinder compatibility.  Our own layer's A5
  55.  *    must be saved so globals can be used by the _PLookupName completion routine.
  56. */
  57.  
  58. #if powerc
  59. #pragma options align=mac68k
  60. #endif
  61.  
  62. typedef struct myMPPParamBlock {
  63.     long                 myA5;
  64.     MPPParamBlock         myMPP;    
  65. } myMPPParamBlock;
  66.     
  67. /* 
  68.  *    This is the structure that defines the "look" of our lists.  It includes
  69.  *    the object name, type, net, node & socket
  70.  */
  71. typedef struct myNetworkEntity {
  72.     char object[33];    
  73.     char type[33];    
  74.     char net[6];
  75.     char node[4];
  76.     char socket[4];
  77. } myNetworkEntity;
  78.  
  79. /* 
  80.  *    A few char codes…
  81.  */
  82. #define kEnterKey    (char)3
  83. #define kReturnKey    (char)13
  84.  
  85. /* 
  86.   *    HiliteMode low memory global.  We clear a bit at this address for using HiliteRGB
  87.   *    when inverting in our LDEF & when selecting items.
  88.   */
  89. #define HiliteModePtr    0x938
  90.  
  91. /* 
  92.   *    Offsets of the structure.  Used for the quicksort().
  93.   */
  94. #define myNetworkEntityObject    0 
  95. #define myNetworkEntityType     33+myNetworkEntityObject
  96. #define myNetworkEntityNet         33+myNetworkEntityType
  97. #define myNetworkEntityNode        6+myNetworkEntityNet
  98. #define myNetworkEntitySocket     4+myNetworkEntityNode
  99.  
  100. /* 
  101.  *    Justification constants for our list views.
  102.  */
  103. #define leftJust     1
  104. #define rightJust     2
  105.  
  106.  /* 
  107.   *    various stuff needed for AppleTalk bridging 
  108.   */
  109. #define sysABridge             0x19
  110. #define ABusVars             0x000002D8
  111. #define kBridgeSocket         0x6
  112. #define systemNetwork         0x1A
  113.  
  114.  /* 
  115.   *    other defines 
  116.   */
  117. #define kMachineNameResourceID    -16096
  118. #define kFlagshipNameResourceID    -16413
  119. #define    ddpMaxData                586
  120. #define kNumBuffers                2
  121. #define kEchoSocket                4
  122. #define kEchoType                "\pEcho Socket"
  123. #define kEchoDDPType            4
  124. #define kLookupBufSize            32766L
  125.  
  126.  /* 
  127.   *    defines for OpenTransport and ASLM
  128.   */
  129. #define kDefaultPoolSize    10000
  130. #define kOpenTransportInitFailed    -17000
  131.  
  132.  
  133.  /* 
  134.   * defines to indicate a change of status in AppleTalk
  135.   */
  136. #define    ATalkStatusChanged    1
  137. #define    ATalkActivated        2
  138.  
  139. /* 
  140.  *    calls for pre-Phase2 AppleTalk 
  141.  *    (already defined in LSC)
  142.  */
  143. #ifndef _GetZoneList         
  144. #define _GetZoneList    8
  145. #endif
  146.  
  147. #ifndef _GetLocalZone         
  148. #define _GetLocalZone    7
  149. #endif
  150.  
  151. #define entryLengths     20                /*  33 standard entityData length */
  152.  
  153. #define suspendResumeEvt     15
  154.  
  155. /*
  156.  *    Resource ID constants.
  157.  */
  158.  
  159. /*
  160.  *    Resource ID constants for string list items.
  161.  */
  162. #define kZoneStrID        1
  163. #define kObjectStrID    2
  164. #define kTypeStrID        3
  165. #define kNetStrID        4
  166. #define kNodeStrID        5
  167. #define kSktStrID        6
  168.  
  169. #define    kStringListID     128                /* ID for our string list resource */
  170.  
  171.  
  172. #define    appleID            128             /* This is a resource ID */
  173. #define    fileID             129             /* ditto */
  174. #define    editID             130             /* ditto */
  175.  
  176. #define    appleMenu        0                /* MyMenus[] array indexes */
  177. #define    aboutMeCommand    1
  178.  
  179. #define    fileMenu        1
  180. #define    lookupCommand     1
  181. #define    quitCommand     2
  182.  
  183. #define    editMenu        2
  184. #define cutCommand        3
  185. #define copyCommand        4
  186. #define pasteCommand    5
  187. #define clearCommand    6
  188. /*#define clearCommand    5*/
  189.  
  190. /* for sort child menu */
  191. #define objectItem            1
  192. #define typeItem            2
  193. #define netItem                3
  194. #define nodeItem            4
  195. #define socketItem            5
  196.  
  197. /*
  198.  * For the About Sample... DLOG
  199.  */
  200. #define    aboutMeDLOG        128
  201. #define    okButton            1
  202. #define    authorItem            2            /* For SetIText */
  203. #define    languageItem        3            /* For SetIText */
  204.  
  205. /*
  206.  * For the spin cursor... ACUR
  207.  */
  208. #define kDMZ_ACUR_ID        0
  209.  
  210. /*
  211.  *    constants for main dialog 
  212.  */
  213. #define kMainDialogID    129
  214.  
  215. #define kZoneListID            1
  216. #define kNameTypeListID        2
  217. #define kZoneItemID            4
  218. #define kTypeID                5
  219. #define kObjectID            6
  220. #define kObjectCountID        7
  221. #define kProgressID            8
  222. #define kNetID                9
  223. #define kNodeID                10
  224. #define kSocketID            11
  225. #define kDoLookupID            12
  226.  
  227. /*
  228.  *    constants for lookup dialog 
  229.  */
  230. #define kLookupDialogID    130
  231. #define kIntervalItem     3
  232. #define kCountItem         4
  233. #define kPhase2Item     5
  234. #define kObjectItem     8
  235. #define kTypeItem         9
  236.  
  237. /*
  238.  *    constant for Alert dialog
  239.  */
  240. #define    rUserAlert        1000                /* user error alert */
  241.  
  242.  
  243. #define    resumeMask                1        /* bit of message field for resume vs. suspend */
  244. #define    sysEnvironsVersion        1
  245.  
  246. /* 
  247.  *    quicksort "mode" constants 
  248.  */
  249. #define sortOnZoneName     1
  250. #define sortOnObject     1
  251. #define sortOnType         31
  252. #define sortOnNet         62
  253. #define sortOnNode         68
  254. #define sortOnSocket     72
  255.     
  256. /* 
  257.  *    constants for window activation 
  258.  */
  259. #define kActivateWindow        1
  260. #define kDeactivateWindow    0
  261.  
  262. /* 
  263.  *    low memory global for hilite RGB setting 
  264.  */
  265. #define HiliteRGB 0xDA0
  266.  
  267.  
  268. #define zoneNameSize     33
  269. #define kDefZonesToGet    64
  270. #define kMaxZoneBuffSize    33 * 400L
  271.  
  272. /* 
  273.  * constants for the gATalkFlags global
  274.  */
  275.  
  276. #define    kVMActive            0
  277. #define kATQInstalled        1
  278. #define kSocketBuffsHeld    2
  279. #define kNameRegistered        3
  280. #define    kATalkActive        4
  281. #define    kSocketBuffsInitd    5
  282. #define kListenerHeld        6
  283. #define kOTActive            7        // new flag to indicate Open Transport is active
  284. #define    kOTLookupActive        8
  285.  
  286. #define SetVMActiveFlag(flags)                (flags |= 1 << kVMActive)
  287. #define ClrVMActiveFlag(flags)                (flags &= (-1 ^ (1 << kVMActive)))
  288. #define TstVMActiveFlag(flags)                ((flags & (1 << kVMActive)) != 0)
  289.  
  290. #define SetATQInstalledFlag(flags)            (flags |= 1 << kATQInstalled)
  291. #define ClrATQInstalledFlag(flags)            (flags &= (-1 ^ (1 << kATQInstalled)))
  292. #define TstATQInstalledFlag(flags)            ((flags & (1 << kATQInstalled)) != 0)
  293.  
  294. #define SetSocketBuffsHeldFlag(flags)        (flags |= 1 << kSocketBuffsHeld)
  295. #define ClrSocketBuffsHeldFlag(flags)        (flags &= (-1 ^ (1 << kSocketBuffsHeld)))
  296. #define TstSocketBuffsHeldFlag(flags)        ((flags & (1 << kSocketBuffsHeld)) != 0)
  297.  
  298. #define SetNameRegisteredFlag(flags)        (flags |= 1 << kNameRegistered)
  299. #define ClrNameRegisteredFlag(flags)        (flags &= (-1 ^ (1 << kNameRegistered)))
  300. #define TstNameRegisteredFlag(flags)        ((flags & (1 << kNameRegistered)) != 0)
  301.  
  302. #define SetATalkActiveFlag(flags)            (flags |= 1 << kATalkActive)
  303. #define ClrATalkActiveFlag(flags)            (flags &= (-1 ^ (1 << kATalkActive)))
  304. #define TstATalkActiveFlag(flags)            ((flags & (1 << kATalkActive)) != 0)
  305.  
  306. #define SetSocketBuffsInitdFlag(flags)        (flags |= 1 << kSocketBuffsInitd)
  307. #define ClrSocketBuffsInitdFlag(flags)        (flags &= (-1 ^ (1 << kSocketBuffsInitd)))
  308. #define TstSocketBuffsInitdFlag(flags)        ((flags & (1 << kSocketBuffsInitd)) != 0)
  309.  
  310. #define SetListenerHeldFlag(flags)            (flags |= 1 << kListenerHeld)
  311. #define ClrListenerHeldFlag(flags)            (flags &= (-1 ^ (1 << kListenerHeld)))
  312. #define TstListenerHeldFlag(flags)               ((flags & (1 << kListenerHeld)) != 0)
  313.  
  314. #define SetOTActiveFlag(flags)                (flags |= 1 << kOTActive)
  315. #define ClrOTActiveFlag(flags)                (flags &= (-1 ^ (1 << kOTActive)))
  316. #define TstOTActiveFlag(flags)                ((flags & (1 << kOTActive)) != 0)
  317.  
  318. #define SetOTLookupActiveFlag(flags)        (flags |= 1 << kOTLookupActive)
  319. #define ClrOTLookupActiveFlag(flags)        (flags &= (-1 ^ (1 << kOTLookupActive)))
  320. #define TstOTLookupActiveFlag(flags)        ((flags & (1 << kOTLookupActive)) != 0)
  321.  
  322.  
  323. /* 
  324.  *    AppleTalk Phase 2 calls 
  325.  */
  326.  
  327. /* 
  328.  *    csCodes for new .XPP driver calls
  329.  */
  330. #ifndef xCall
  331. #define    xCall                246
  332. #endif
  333.  
  334. /* 
  335.  *    xppSubCodes 
  336.  */
  337. #ifndef zipGetLocalZones
  338. #define zipGetLocalZones     5
  339. #endif
  340. #ifndef zipGetZoneList
  341. #define zipGetZoneList        6
  342. #endif
  343. #ifndef zipGetMyZone
  344. #define zipGetMyZone         7
  345. #endif
  346.  
  347. /* 
  348.  *    mpp csCodes 
  349.  */
  350. #ifndef getAppleTalkInfo
  351. #define getAppleTalkInfo     258
  352. #endif
  353.  
  354. /*  
  355.  *    offsets for packet buffers to be used by socket listener
  356.  */
  357. typedef struct {
  358.         QElemPtr    qLink;
  359.         short        qType;
  360.         short        buffer_type;            /* DDP Type */
  361.         short        buffer_NodeID;            /* Destination Node */
  362.         AddrBlock    buffer_Address;            /* Source Address in AddrBlock format */
  363.         short        buffer_Hops;            /* Hop count */
  364.         short        buffer_ActCount;        /* length of DDP datagram */
  365.         OSErr        buffer_CheckSum;        /* Checksum returned here */
  366.         long        buffer_Ticks;            /* Timestamp of processing by socket listener */
  367.         char        buffer_Data[ddpMaxData]; /* the DDP datagram */
  368. } PacketBuffer;
  369.  
  370. typedef PacketBuffer *PacketPtr;
  371.  
  372. /*
  373.  *    The following stuff is implemented for the AppleTalk Transition Queue 
  374.  */
  375.  
  376. #define ATTransOpen                    0        /* .MPP just opened */
  377. #define ATTransClose                2        /* .MPP is closing */
  378. #define ATTransClosePrep            3        /* OK for .MPP to close? */
  379. #define ATTransCancelClose            4        /* .MPP close was canceled */
  380. #define ATTransNetworkTransition    5        /* .MPP Network ADEV transition */
  381. #define ATTransNameChangeTellTask    6        /* Flagship name is changing */
  382. #define ATTransNameChangeAskTask    7        /* OK to change Flagship name */
  383. #define ATTransCancelNameChange        8        /* Flagship name change was canceled */
  384. #define ATTransCableChange            'rnge'    /* Cable Range Change has occurred */
  385. #define ATTransSpeedChange            'sped'    /* Change in processor speed has occurred */
  386.  
  387. /*----------------------------------------------------------------------
  388.         NBP Name Change Info record
  389. ----------------------------------------------------------------------*/
  390. typedef struct NameChangeInfo {
  391.     Str32     newObjStr;    /* new NBP name */
  392.     Ptr    name;            /* Ptr to location to place a pointer to Pascal string of */
  393.                             /* name of process that NAK'd the event */
  394. }
  395.     NameChangeInfo, *NameChangePtr, **NameChangeHdl;
  396.  
  397. /*----------------------------------------------------------------------
  398.         Network Transition Info Record
  399. ----------------------------------------------------------------------*/
  400.  
  401. typedef struct TNetworkTransition {
  402.     Ptr        private;            /* pointer to private structure */
  403.     ProcPtr    netValidProc;        /* pointer to network validation procedure */
  404.     Boolean     newConnectivity;    /* true = new connection */
  405.                                      /* false = loss of connection */
  406.  
  407. }
  408.     TNetworkTransition , *TNetworkTransitionPtr, **TNetworkTransitionHdl;
  409.  
  410.  
  411. typedef    pascal long    (*NetworkTransitionProcPtr)(TNetworkTransitionPtr netTrans, \
  412.                       unsigned long theNet);
  413.  
  414. /*----------------------------------------------------------------------
  415.         Cable Range Transition Info Record
  416. ----------------------------------------------------------------------*/
  417. typedef struct TNewCRTrans {
  418.     short    newCableLo;    /* the new Cable Lo received from RTMP */
  419.     short    newCableHi;    /* the new Cable Hi received from RTMP */
  420. }
  421.     TNewCRTrans , *TNewCRTransPtr, **TNewCRTransHdl;
  422.  
  423. /*----------------------------------------------------------------------
  424.         AppleTalk Transition Queue Element
  425. ----------------------------------------------------------------------*/
  426. typedef struct    myATQEntry {
  427.     struct ATQEntry            *qLink;        /* have to maintain standard ATQ entries */
  428.     short                    qType;
  429.     ATalkTransitionEventUPP    CallAddr;        
  430.     Handle        globs;                    /* handle to user defined globals */
  431.     long        myA5;                    // A5 saved for the ATQ routine
  432. }
  433.     myATQEntry, *myATQEntryPtr, **myATQEntryHdl;
  434.  
  435. /*----------------------------------------------------------------------
  436.          Transition Queue global values
  437. ----------------------------------------------------------------------*/
  438. typedef struct    dmzEntry {
  439.     Boolean            atalkStatusChanged;    /* status of AppleTalk has changed */
  440.     Boolean            atalkActive;    /* AppleTalk is active/inactive */
  441.     NamesTableEntry    *dmzNTEPtr;        /* -> NTE entry to Remove name */
  442. }
  443.     dmzEntry, *dmzEntryPtr, **dmzEntryHdl;
  444.  
  445. /*----------------------------------------------------------------------
  446.          ProcPtr defines for PowerPC
  447. ----------------------------------------------------------------------*/
  448. enum {
  449.     uppInitListenerProcInfo = kPascalStackBased
  450.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  451.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(QHdrPtr)))
  452.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(QHdrPtr)))
  453. };
  454.  
  455. typedef pascal OSErr (*InitSktListenerProcPtr)(QHdr *freeQ, QHdr *usedQ);
  456.  
  457. #if USESROUTINEDESCRIPTORS
  458. typedef UniversalProcPtr    InitSktListenerUPP;
  459.  
  460. #define CallInitSktListenerProc(userRoutine, freeQ, usedQ)    \
  461.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppInitListenerProcInfo, (freeQ), (usedQ))
  462. #define NewInitSktListenerProc(userRoutine)        \
  463.         (InitSktListenerUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppInitListenerProcInfo, kM68kISA)
  464.  
  465. #else
  466.  
  467. typedef InitSktListenerProcPtr    InitSktListenerUPP;
  468.  
  469. #define CallInitSktListenerProc(userRoutine, freeQ, usedQ)    \
  470.         (userRoutine)(freeQ, usedQ)
  471. #define NewInitSktListenerProc(userRoutine)        \
  472.         (InitSktListenerUPP)(userRoutine)
  473.  
  474. #endif
  475.  
  476. /* prototypes ************* */
  477.  
  478. /* dmzmain.c */
  479. extern void        myVBLSpinInstall(void);
  480. extern int        stopAndDisposeSpinCursor(void);
  481. extern void        DrawBoldItem(WindowPtr whichWindow, short theItem, short whichStrID);
  482. extern pascal void    updateUserItems(WindowPtr whichWindow, short theItem);
  483. extern void        getandSetIt(short whichID);
  484. extern void        setupUserItems(void);
  485. extern void        setupLookupItem(void);
  486. extern void        doLookupItem(void);
  487. extern void        setWindowStdState(WindowPtr theWindow);
  488. extern void        setUpDialogs(void);
  489. extern void        FrameItem(DialogPtr whichDialog, short whichItem);
  490. extern void        doModeless(DialogPtr whichDialog, short whichItem);
  491. extern void        doIdle(void);
  492. extern void        DrawGrowBox(WindowPtr theWindow);
  493. extern void        doUpdate(WindowPtr theWindow);
  494. extern void        ShowMainWindowAndSizeIt(void);
  495. extern void        doInitializing(void);
  496. extern short    resizeRectToListCellSize(short height);
  497. extern void        resizeWindow(WindowPtr whichWindow, short height);
  498. extern Boolean    IsAppWindow(WindowPtr window);
  499. extern Boolean    IsDAWindow(WindowPtr window);
  500. extern Boolean    DoCloseWindow(WindowPtr window);
  501. extern void        DoZoomWindow(WindowPtr whichWindow, short partCode);
  502. extern void        DoGrowWindow(WindowPtr whichWindow, EventRecord *evt);
  503. extern void        doActivate(WindowPtr theWindow);
  504. extern void        doDeactivate(WindowPtr theWindow);
  505. extern void        doCleanUpAndTerminate(void);
  506. extern void        setupMenus(void);
  507. extern void        handleLookupDialogEdit(void);
  508. extern void        doCommand(long mResult);
  509. extern pascal void    aboutDialogOKFrame(WindowPtr theWindow, short itemNo);
  510. extern void        centerDialog(WindowPtr theWindow);
  511. extern void        showAboutMeDialog(void);
  512. extern void     BigBadError(Str255    message);
  513. extern Boolean  TrapAvailable(short theTrap);
  514. extern Boolean  IsVMOn(void);
  515. extern short     NumToolboxTraps(void);
  516. extern TrapType GetTrapType(short theTrap);
  517. extern void     DoSpinCursor(void);
  518. extern void     StopSpinCursor(void);
  519.  
  520.  
  521.  
  522. /* dmzlists.c */
  523.  
  524. extern void        invalidateItem(short whichItem);
  525. extern void        DisposOfMyLists(void);
  526. extern void        OpenZonesList(void);
  527. extern void        tellUserNoZones(void);
  528. extern int        myCompare(const void *aStr, const void *bStr);
  529. extern void        letsSort(Ptr theBuffPtr, short numZonesGot, short number);
  530. extern void        SetZoneCells(Ptr bufferPtr, short NumZonesGot);
  531. extern void        doZonesListStuff(void);
  532. extern void        OpenObjectTypeList(void);
  533. extern void        doObjectDoubleClick(void);
  534. extern void        doObjectTypeListStuff(void);
  535. extern void        padEntry(unsigned char *entry, short length, short just);
  536. extern void        SetObjectTypeCells(Ptr bufferPtr, short numDevicesGot);
  537. extern void     ClearZoneCells();
  538. extern void     ClearObjectTypesList();
  539. extern short    pcmp(StringPtr s1, StringPtr s2);
  540.  
  541. /* dmzat.c */
  542. extern pascal void saveThatA5(void);
  543. extern pascal void restoreThatA5(void);
  544. extern void     saveThisA5(myATQEntry *atqEntry);
  545.  
  546. extern unsigned char    *Pstrcat(unsigned char *s, unsigned char *t);
  547. extern unsigned char    PStrLen(unsigned char *e);
  548. extern Boolean    PStrComp(unsigned char *str1, unsigned char *str2);
  549. extern void        killLookups(void);
  550. extern void        removeMyNameAndSocket(void);
  551. extern void        closeUpOurAppleTalk(void);
  552. extern void        registerMyName(void);
  553. extern void        enableSetSelfSend(void);
  554. extern void        phase2Check(void);
  555. extern void        InitAppleTalkVars(void);
  556. extern void        addToUnpackedBuffer(Ptr oldBuffer, Ptr newBuffer, short numGot, short total);
  557. extern void        getMyZone(char *myZoneBuffer);
  558. extern void     doGetZoneListPhs2(void);
  559. extern void        doGetZoneListPrePh2(void);
  560. extern Boolean    zonesPresent(void);
  561. extern void        setItemString(DialogPtr whichDialog, short whichItem, Str255 str);
  562. extern void        getTheZoneList(void);
  563. extern void        processListUpdate(void);
  564. extern void        myCompletionRoutine(ParamBlockRec *paramBlock);
  565. extern void        setUpdateListFlag(void);
  566. extern char        giveMeItemValue(short whichItem);
  567. extern void        giveMeItemString(short whichItem, Str255 str);
  568. extern void        getTypesNamesInZone(char *NBPZone);
  569. extern void        doGetMyZonePhs2(void);
  570. extern void        doGetLocalZonesPhs2(void);
  571. extern void        doGetZoneListPhs2(void);
  572. extern void        setupEchoDialog(DialogPtr echoDialog, myNetworkEntity *myEnt);
  573. extern void        doEcho(myNetworkEntity *myEnt);
  574. extern long        ATalkTransQueue(long selector, myATQEntry *q, void *p);
  575. extern OSErr     InitEchoBuffers(void);
  576. extern short    AppleTalkVersion(void);
  577. extern Boolean     GestaltAvailable(void);
  578. extern Boolean  LAPMgrExists(void);
  579. extern void     restoreSetSelfSend(); 
  580.  
  581. /* dmzOT.c */
  582. extern OSErr    ActivateOpenTransport(void);
  583. extern Boolean  OpenTransportActive(void);
  584. extern void     GetBridgeAddressFromOT(AddrBlock *theAddr);
  585. extern void     CleanupOTServices(void);
  586. extern short    addToOTUnpackedBuffer(Ptr packedBuffer, Ptr unpackedBuffer, long len);
  587. extern UInt16   OTMySetNBPEntity(char *buffer, Ptr nbpObject, Ptr nbpType, Ptr nbpZone);
  588. extern void     DoOTGetMyZone(char *myZoneBuffer);
  589. extern void     DoOTNameLookup(char *NBPObject, char *NBPType, char *NBPZone);
  590. extern pascal void     MyDMZNBPHandler(void*  contextPtr, OTEventCode event, OTResult result, void* cookie);
  591. extern void     OTSetObjectTypeCells(Ptr ptr, short numDevicesGot);
  592. extern void     OTDeleteMyName (void);
  593. extern void     OTRegisterMyName (void);
  594. extern void     DoOTGetZoneList(void);
  595. extern void        ProcessOTListUpdate(char *resultStr);
  596. extern void     doOTEcho(myNetworkEntity    *myEnt);
  597.  
  598. /* OpenTptUtilities.c */
  599. extern short     OTExtractNBPCName(const NBPEntity* entity, char* field, UInt32 offset, UInt8 *delimiter);
  600.  
  601. #if powerc
  602. #pragma options align=reset
  603. #endif
  604.  
  605. #endif     // __DMZ__